<?php

/**
 * 此文件是接口的公共程序
 *
 * 主要是用于包含常用的类和配置常量
 * @author Jerry
 * @version 1.0
 */

/**
 * 系统报错等级
 */
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);

//程序根目录
define('SYS_PATH','./');

//include目录
define('INCLUDE_DIR', SYS_PATH . 'include/');


//function 目录
define('FUNCTION_DIR', INCLUDE_DIR . 'functions/');

//类库目录
define('CLASS_DIR', INCLUDE_DIR . 'class/');

/**
 * 控制器目录
 */
define('CONTROLLER_DIR', INCLUDE_DIR . 'controller/');

//模型目录
define('MODEl_DIR', INCLUDE_DIR . 'model/');

//缓存目录
define('CACHE_DIR', SYS_PATH . 'cache/');

/**
 * 数据库类目录
 */
define('DB_DIR', CLASS_DIR . 'database/');

/**
 * 模板引擎目录
 */
define('TPL_DIR', CLASS_DIR . 'template/');

/**
 * 配置目录
 */
define('CONFIG_DIR', SYS_PATH . 'config/');

/**
 * 采用内网配置或外网配置文件(base.php)
 * 内网配置值为inner，外网配置值为outer
 */
define('SYSTEM_CONFIG_ATTR', 'inner');

date_default_timezone_set( 'PRC' );

//包含基础配置文件
include_once(CONFIG_DIR . 'base_' . SYSTEM_CONFIG_ATTR . '.php');

//包含memcahe配置文件
include_once(CONFIG_DIR . 'memcache_' . SYSTEM_CONFIG_ATTR . '.php');

//包含数据库表配置文件
include(CONFIG_DIR . 'table.php');

//包含memcache配置文件
include(CONFIG_DIR . 'memcache.php');

//包含自动加载
include(CONFIG_DIR . 'atuorun.php');

//包含自定义信息加载
include(CONFIG_DIR . 'customer_msg.php');

//包含mibi产品加载
include(CONFIG_DIR . 'mibi_goods.php');

//包含省份配置加载
include(CONFIG_DIR . 'province.php');

//包含城市配置加载
include(CONFIG_DIR . 'city.php');

//包含静态文件配置加载
include(CONFIG_DIR . 'static_file_url.php');

//包含安全提示问题加载
include(CONFIG_DIR . 'safegard.php');

//包含销售商列表加载
include(CONFIG_DIR . 'dealer.php');

//包含统计信息加载
include(CONFIG_DIR . 'msglog.php');

//包含统计信息加载
include(CONFIG_DIR . 'filter.php');




/**
 * 开启gzip , = 1 开启 ， 0 为关闭
 */
define('ENABLE_GZIP', $sys_conf_var['system']['gzip']);


/**
 * 包含系统调式类文件
 */
include_once (CLASS_DIR . "logger.class.php");

/**
 * 包含系统调式类文件
 */
include_once (CLASS_DIR . "log.class.php");

/**
 * 包含数据库工厂文件
 */
include_once (DB_DIR . "db.factory.php");


//包含程序路由类
include_once(CLASS_DIR . 'application.class.php');

/**
 * 包含模板引擎文件
 */
include_once (TPL_DIR . "compiler.class.php");

/**
 * 包含模型父类
 */
include_once (CLASS_DIR . "model.class.php");

/**
 * 包含控制器父类
 */
include_once (CLASS_DIR . "controller.class.php");

//包含公共函数库
include_once(FUNCTION_DIR . 'functions_general.php');

//包含验证函数库
include_once(FUNCTION_DIR . 'functions_validate.php');

//包含模板内调用函数
include_once(FUNCTION_DIR . 'functions_template.php');

//包含通用函数
include_once(FUNCTION_DIR . 'functions_common.php');

/**
 * 包含自定义异常处理文件
 */
include_once (CLASS_DIR . "exception.class.php");

//包含服务端接口信息加载
include_once(CONFIG_DIR . 'service.php');

if(count($sys_conf_var['filter'])&&!empty($sys_conf_var['filter']))
{
	//包含Filter函数库
	include_once(FUNCTION_DIR . 'functions_filter.php');
}

if($sys_conf_var['session']['save_type'] == 3)
{
    /**
     * 包含系统session函数库
     */
    include_once (FUNCTION_DIR . "memcache_session.php");

    //$memSess = new MemacheSession($sys_conf_var['memcache']['serv_ip'],$sys_conf_var['memcache']['serv_port'],$sys_conf_var['session']['online_hold']);
    //$memSess->initSess($sys_conf_var['memcache']['domain']);
}
else
{
    /**
     * 包含系统session函数库
     */
    include_once (FUNCTION_DIR . "functions_sessions.php");

    sys_session_start();
}


$logger = new Logger();  //注册调试器
$logger->startTime();   //set time of program to start

//处理传入参数
$in_var = parse_incoming();

//声明模板处理器
$tpl = new Compiler();

$tpl->registerFilterFunction('replace_cdn_url');

$tpl->template_dir = SYS_PATH  . 'template/';    //指定模板路径
$tpl->compile_dir  = CACHE_DIR  . 'compile/';    //指定中间文件路径
$tpl->is_cache   = true;                       //是否开启缓存
$tpl->cache_dir  = SYS_PATH  . 'cache/';       //指定缓存目录
$tpl->cache_life_time = $sys_conf_var['system']['cache_life_time'];                  //指定缓存过期时间
$tpl->client_caching  = true;                  //是否进行客户端缓存

$sys_conf_var['img']['cdn'] = str_replace('http://','http://' . $sys_conf_var['dev']['user'],$sys_conf_var['img']['cdn']);

$tpl->assign('res_server',$sys_conf_var['img']['cdn']);

header("Content-type: text/html; charset=" . $sys_conf_var['system']['charset']);

?>
